{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "ec382234-726f-482b-80d5-6b8a722f88e4",
   "metadata": {},
   "source": [
    "## 目录写法\n",
    "\n",
    "./表示当前目录\n",
    "\n",
    "../表示上一级目录\n",
    "\n",
    "../../表示上上级目录"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "30bb4a39-6161-4b84-b1b4-41ac2b1a2cf9",
   "metadata": {},
   "source": [
    "## 数据读取"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "75e58306-06d0-4715-83c1-edf00ac16cc4",
   "metadata": {},
   "outputs": [],
   "source": [
    "import pandas as pd\n",
    "\n",
    "train = pd.read_csv(\"./数据集/Covid-19/Corona_NLP_train.csv\",encoding='latin-1')\n",
    "train_data = train[[\"OriginalTweet\",\"Sentiment\"]]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "64b248d2-4c10-406e-810c-839b98797368",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": 60,
   "id": "d2c5abbd-cb9c-4692-8936-cff118a7df22",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>OriginalTweet</th>\n",
       "      <th>Sentiment</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>@menyrbie @phil_gahan @chrisitv https://t.co/i...</td>\n",
       "      <td>Neutral</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>advice talk to your neighbours family to excha...</td>\n",
       "      <td>Positive</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>coronavirus australia: woolworths to give elde...</td>\n",
       "      <td>Positive</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>my food stock is not the only one which is emp...</td>\n",
       "      <td>Positive</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>me, ready to go at supermarket during the #cov...</td>\n",
       "      <td>Extremely Negative</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>as news of the regionâs first confirmed covid...</td>\n",
       "      <td>Positive</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                                       OriginalTweet           Sentiment\n",
       "0  @menyrbie @phil_gahan @chrisitv https://t.co/i...             Neutral\n",
       "1  advice talk to your neighbours family to excha...            Positive\n",
       "2  coronavirus australia: woolworths to give elde...            Positive\n",
       "3  my food stock is not the only one which is emp...            Positive\n",
       "4  me, ready to go at supermarket during the #cov...  Extremely Negative\n",
       "5  as news of the regionâs first confirmed covid...            Positive"
      ]
     },
     "execution_count": 60,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "train_data.head(6)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "22937420-93ce-46d1-84df-cd1e2f79bb84",
   "metadata": {},
   "source": [
    "## 显示类别"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 50,
   "id": "c81dddf4-51a1-4df0-a65f-2d41e19c0153",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "{'Extremely Negative', 'Extremely Positive', 'Negative', 'Neutral', 'Positive'}"
      ]
     },
     "execution_count": 50,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "set(train_data['Sentiment'])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "0c2f472f-760f-4181-9ea5-81786023699d",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "id": "94cb81dd-0511-4392-a09d-d059b1efa9a9",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "每个类别条数 : {'Positive': 11422, 'Negative': 9917, 'Neutral': 7713, 'Extremely Positive': 6624, 'Extremely Negative': 5481} \n",
      "类别数量 : 5\n"
     ]
    }
   ],
   "source": [
    "print(\"每个类别条数 : {} \".format(train_data.Sentiment.value_counts().to_dict()))\n",
    "print(\"类别数量 : {}\".format(len(train_data.Sentiment.unique())))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "id": "e12cad96-08dd-4845-9713-ad1b49870dbc",
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/tmp/ipykernel_13057/3002892902.py:14: SettingWithCopyWarning: \n",
      "A value is trying to be set on a copy of a slice from a DataFrame.\n",
      "Try using .loc[row_indexer,col_indexer] = value instead\n",
      "\n",
      "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
      "  train_data['Sentiment'] = train_data['Sentiment'].apply(lambda x : change_sen(x))\n"
     ]
    }
   ],
   "source": [
    "import numpy as np\n",
    "def change_sen(sentiment):\n",
    "    if sentiment == \"Extremely Positive\":\n",
    "        return \"Positive\"\n",
    "    elif sentiment == \"Extremely Negative\":\n",
    "        return \"Negative\"\n",
    "    elif sentiment == \"Negative\":\n",
    "        return \"Negative\"\n",
    "    elif sentiment == \"Positive\":\n",
    "        return \"Positive\"\n",
    "    else:\n",
    "        return \"Neutral\"\n",
    "    \n",
    "train_data['Sentiment'] = train_data['Sentiment'].apply(lambda x : change_sen(x))\n",
    "\n",
    "count_dict = train_data['Sentiment'].value_counts().to_dict()\n",
    "Labels = list(count_dict.keys())\n",
    "values = list(count_dict.values())\n",
    "#values = np.array(values)/sum(values)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "f2dbc4c3-54b8-46e1-8e15-96e47e585e10",
   "metadata": {},
   "source": [
    "## 数据可视化"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "cfce7df9-5888-4cf2-8c80-d66ccc9c87e9",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": 64,
   "id": "1d5f5862-873b-43fd-81ce-3320ab785209",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 750x750 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "import matplotlib.pyplot as plt\n",
    "my_dpi=96\n",
    "plt.figure(figsize=(100000000/my_dpi,100000000/my_dpi),dpi=150)\n",
    "plt.pie(x=values,#指定绘图数据\n",
    "        labels=Labels,#为饼图添加标签说明\n",
    "        autopct='%.2f%%'\n",
    "       )\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "5c96b038-8919-4906-915b-527934bd533b",
   "metadata": {},
   "source": [
    "## 去停用词"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "61347a1b-83ee-4b58-9b27-60204e73b16d",
   "metadata": {},
   "source": [
    "NLP 自然语言处理"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 56,
   "id": "bd994ed4-6293-4ce9-8347-d3dc9ffe1f95",
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/tmp/ipykernel_13057/4287025543.py:3: SettingWithCopyWarning: \n",
      "A value is trying to be set on a copy of a slice from a DataFrame.\n",
      "Try using .loc[row_indexer,col_indexer] = value instead\n",
      "\n",
      "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
      "  train_data[\"OriginalTweet\"]  = train_data['OriginalTweet'].apply(lambda x:x.lower())\n"
     ]
    }
   ],
   "source": [
    "from nltk.corpus import stopwords\n",
    "stop_words = stopwords.words('english')\n",
    "train_data[\"OriginalTweet\"]  = train_data['OriginalTweet'].apply(lambda x:x.lower())"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "2876a884-8a58-4ea0-b3d1-ad27f718dd99",
   "metadata": {},
   "source": [
    "## 数据清洗"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "id": "75d3a019-3ae3-4f96-b050-e99cbdfaa588",
   "metadata": {},
   "outputs": [],
   "source": [
    "import re\n",
    "## 数据清洗\n",
    "# @ &&&& ！/0012 、00xz\n",
    "def clean_data(text):\n",
    "    text = str(text).strip()\n",
    "    text = text.replace(\"?\",\"\")\n",
    "    text = re.sub(r\"http\\S+\",\"\",text)\n",
    "    text = re.sub(r\"@\\w+\",\"\",text)\n",
    "    text = re.sub(r\"#\\w+\",\"\",text)\n",
    "    text = re.sub(r\"\\d+\",\"\",text)\n",
    "    text = re.sub(r\"<.*?>\",\"\",text)\n",
    "    text = text.split()\n",
    "    text = \" \".join([word for word in text if not word in stop_words])\n",
    "    #text - str(text).strip()\n",
    "    return text"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "id": "de361eba-3cfd-4bd8-a0ef-3c9f1bd65759",
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/tmp/ipykernel_13057/922626148.py:1: SettingWithCopyWarning: \n",
      "A value is trying to be set on a copy of a slice from a DataFrame.\n",
      "Try using .loc[row_indexer,col_indexer] = value instead\n",
      "\n",
      "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
      "  train_data[\"OriginalTweet\"] = train_data['OriginalTweet'].apply(lambda x : clean_data(x))\n"
     ]
    }
   ],
   "source": [
    "train_data[\"OriginalTweet\"] = train_data['OriginalTweet'].apply(lambda x : clean_data(x))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "id": "98b8d92b-fdd7-4755-bf07-afc57254ab47",
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/tmp/ipykernel_13057/1670334803.py:6: SettingWithCopyWarning: \n",
      "A value is trying to be set on a copy of a slice from a DataFrame.\n",
      "Try using .loc[row_indexer,col_indexer] = value instead\n",
      "\n",
      "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
      "  train_data['Sentiment'] = train_data['Sentiment'].map(l)\n"
     ]
    }
   ],
   "source": [
    "train_data['Sentiment'].unique()\n",
    "l = dict()\n",
    "for idx,lbl in enumerate(train_data['Sentiment'].unique()):\n",
    "    l[lbl] = idx \n",
    "    \n",
    "train_data['Sentiment'] = train_data['Sentiment'].map(l)\n",
    "\n",
    "max_len = np.max(train_data['OriginalTweet'].apply(lambda x : len(x)))"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "b69223c3-fdc2-49a2-b445-6b3fa2d3f8f3",
   "metadata": {},
   "source": [
    "# 训练集和测试集\n",
    "train数据是训练集，帮助我们构建模型\n",
    "\n",
    "test数据是测试集，帮助我们验证模型"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "id": "95399620-b236-469c-a749-834ad652b0bd",
   "metadata": {},
   "outputs": [],
   "source": [
    "from sklearn.model_selection import train_test_split\n",
    "train,test = train_test_split(train_data,test_size = 0.3)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "id": "1ff7e4f6-523e-4fdd-ae8d-f56c60bd55cf",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>OriginalTweet</th>\n",
       "      <th>Sentiment</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>16851</th>\n",
       "      <td>: prices terribly increase,mbarara trader susp...</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2222</th>\n",
       "      <td>tips avoid coronavirus scams.</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>14808</th>\n",
       "      <td>i've managed stay indoors roughly days now, i'...</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>24240</th>\n",
       "      <td>citydia first supermarket chain ghana implemen...</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>30563</th>\n",
       "      <td>itâs bad add pains covid- citizens passing in...</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                                           OriginalTweet  Sentiment\n",
       "16851  : prices terribly increase,mbarara trader susp...          2\n",
       "2222                       tips avoid coronavirus scams.          2\n",
       "14808  i've managed stay indoors roughly days now, i'...          1\n",
       "24240  citydia first supermarket chain ghana implemen...          1\n",
       "30563  itâs bad add pains covid- citizens passing in...          2"
      ]
     },
     "execution_count": 23,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "train.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "id": "aa69632b-6006-46b6-9119-719f347f8aea",
   "metadata": {},
   "outputs": [],
   "source": [
    "X_train = train[[\"OriginalTweet\"]]\n",
    "y_train = train[[\"Sentiment\"]]\n",
    "X_test = test[['OriginalTweet']]\n",
    "y_test = test[[\"Sentiment\"]]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "id": "e06e5746-35cf-4c31-a9c0-718115e67fcf",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "((28809, 1), (28809, 1), (12348, 1), (12348, 1))"
      ]
     },
     "execution_count": 26,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "X_train.shape,y_train.shape,X_test.shape,y_test.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "id": "eeb30462-2553-44ec-9a9c-f52564e1c991",
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "2022-03-02 11:31:31.487679: W tensorflow/stream_executor/platform/default/dso_loader.cc:64] Could not load dynamic library 'libcudart.so.11.0'; dlerror: libcudart.so.11.0: cannot open shared object file: No such file or directory\n",
      "2022-03-02 11:31:31.487726: I tensorflow/stream_executor/cuda/cudart_stub.cc:29] Ignore above cudart dlerror if you do not have a GPU set up on your machine.\n"
     ]
    }
   ],
   "source": [
    "from tensorflow.keras.preprocessing.text import Tokenizer\n",
    "tokenizer = Tokenizer()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "id": "2e0e4c0a-e1a6-4386-ac64-0482b8ffa363",
   "metadata": {},
   "outputs": [],
   "source": [
    "tokenizer.fit_on_texts(X_train[\"OriginalTweet\"])\n",
    "vocab_length = len(tokenizer.word_index) + 1"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "id": "08579e3c-5cf0-422d-be94-75f1082f4d65",
   "metadata": {},
   "outputs": [],
   "source": [
    "x_train = tokenizer.texts_to_sequences(X_train[\"OriginalTweet\"])\n",
    "x_test = tokenizer.texts_to_sequences(X_test[\"OriginalTweet\"])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "ba2175ea-00b4-457e-b69c-65cfb28ed232",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "markdown",
   "id": "39e631fa-fd2d-4bf7-a26c-3080b13191cd",
   "metadata": {},
   "source": [
    "## Padding"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "id": "fc772ecf-0801-42f1-9e9a-67b6a4c9ed7e",
   "metadata": {},
   "outputs": [],
   "source": [
    "from tensorflow.keras.preprocessing.sequence import pad_sequences\n",
    "x_train = pad_sequences(x_train, maxlen=max_len, padding='post')\n",
    "x_test = pad_sequences(x_test, maxlen=max_len, padding='post')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "id": "cf4b994e-5ae0-4231-9c24-dab88c713238",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "{0, 1, 2}"
      ]
     },
     "execution_count": 29,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "set(y_train.values.flatten())"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 32,
   "id": "bc9914f5-cb47-4f0e-afb8-0b9cf59f785b",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[    2,  7114,   187, ...,     0,     0,     0],\n",
       "       [  313,   255,    23, ...,     0,     0,     0],\n",
       "       [  439,  1691,    39, ...,     0,     0,     0],\n",
       "       ...,\n",
       "       [13234,   885,  3952, ...,     0,     0,     0],\n",
       "       [    1, 30113,  4905, ...,     0,     0,     0],\n",
       "       [ 1517,    90,   300, ...,     0,     0,     0]], dtype=int32)"
      ]
     },
     "execution_count": 32,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "x_train"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 62,
   "id": "62385848-41a6-4d80-94ef-497596e93586",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([  256, 11273,  1783,  2892,    25,    27,    60,   128, 15211,\n",
       "        4272,   834,  1752,  1348,     4,   982,    46, 11273,     0,\n",
       "           0,     0,     0,     0,     0,     0,     0,     0,     0,\n",
       "           0,     0,     0,     0,     0,     0,     0,     0,     0,\n",
       "           0,     0,     0,     0,     0,     0,     0,     0,     0,\n",
       "           0,     0,     0,     0,     0,     0,     0,     0,     0,\n",
       "           0,     0,     0,     0,     0,     0,     0,     0,     0,\n",
       "           0,     0,     0,     0,     0,     0,     0,     0,     0,\n",
       "           0,     0,     0,     0,     0,     0,     0,     0,     0,\n",
       "           0,     0,     0,     0,     0,     0,     0,     0,     0,\n",
       "           0,     0,     0,     0,     0,     0,     0,     0,     0,\n",
       "           0,     0,     0,     0,     0,     0,     0,     0,     0,\n",
       "           0,     0,     0,     0,     0,     0,     0,     0,     0,\n",
       "           0,     0,     0,     0,     0,     0,     0,     0,     0,\n",
       "           0,     0,     0,     0,     0,     0,     0,     0,     0,\n",
       "           0,     0,     0,     0,     0,     0,     0,     0,     0,\n",
       "           0,     0,     0,     0,     0,     0,     0,     0,     0,\n",
       "           0,     0,     0,     0,     0,     0,     0,     0,     0,\n",
       "           0,     0,     0,     0,     0,     0,     0,     0,     0,\n",
       "           0,     0,     0,     0,     0,     0,     0,     0,     0,\n",
       "           0,     0,     0,     0,     0,     0,     0,     0,     0,\n",
       "           0,     0,     0,     0,     0,     0,     0,     0,     0,\n",
       "           0,     0,     0,     0,     0,     0,     0,     0,     0,\n",
       "           0,     0,     0,     0,     0,     0,     0,     0,     0,\n",
       "           0,     0,     0,     0,     0,     0,     0,     0,     0,\n",
       "           0,     0,     0,     0,     0,     0,     0,     0,     0,\n",
       "           0,     0,     0,     0,     0,     0,     0,     0,     0,\n",
       "           0,     0,     0,     0,     0,     0,     0,     0,     0,\n",
       "           0,     0,     0,     0,     0,     0,     0,     0,     0,\n",
       "           0,     0,     0,     0,     0,     0,     0,     0,     0,\n",
       "           0,     0,     0,     0], dtype=int32)"
      ]
     },
     "execution_count": 62,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "x_train[8]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 35,
   "id": "cfa41683-9009-4a48-ba54-cb8e13cdb919",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([ 439, 1691,   39, 1971, 3594,  113,  122,  439,  274, 1279,  355,\n",
       "         97,  943,  998,  441,  604,   13,    4,  188,   20,  285, 1053,\n",
       "          8,   12,  284,  441,   16,   31,    0,    0,    0,    0,    0,\n",
       "          0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,\n",
       "          0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,\n",
       "          0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,\n",
       "          0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,\n",
       "          0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,\n",
       "          0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,\n",
       "          0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,\n",
       "          0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,\n",
       "          0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,\n",
       "          0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,\n",
       "          0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,\n",
       "          0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,\n",
       "          0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,\n",
       "          0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,\n",
       "          0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,\n",
       "          0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,\n",
       "          0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,\n",
       "          0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,\n",
       "          0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,\n",
       "          0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,\n",
       "          0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,\n",
       "          0,    0,    0,    0,    0,    0,    0,    0,    0,    0],\n",
       "      dtype=int32)"
      ]
     },
     "execution_count": 35,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "x_train[2]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "9301fe29-74a9-4507-8819-ef676d8e3a94",
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.9.4"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
